1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10 using System.Globalization;
11 using System.Runtime.InteropServices;
12 using Excel = Microsoft.Office.Interop.Excel;
13
14 namespace SoftQuanLyNhaHang.Views
15 {
16
17 public delegate void Dgv_TrangThai_ByNhapHang_EventHandler(object sender, EventArgs e, int IdNhapHang, int NhaCungCapId, string trangThaiNhapHang);
18
19 public delegate void Link_QuanLyKho_EventHandler(object sender, EventArgs e);
20
21 public delegate void Link_ThemMoiDonHang_EventHandler(object sender, EventArgs e);
22
23 public partial class uctQuanLyHoaDon : UserControl
24 {
25
26
27 public event Dgv_TrangThai_ByNhapHang_EventHandler Link_TrangThai_Get_NhapHang_ChiTiet;
28
29 public uctQuanLyHoaDon()
30 {
31 InitializeComponent();
32 }
33
34 public static uctQuanLyHoaDon uctQLHD = new uctQuanLyHoaDon();
35
36
37 public event Link_QuanLyKho_EventHandler Link_QuanLyKho;
38
39 public event Link_ThemMoiDonHang_EventHandler Link_ThemMoiDonHang;
40
41 int _getSearchIdNhaCungCap = 0;
42
43 //Nhap hang
44 int _IdNhapHang = 0;
45 //int _NhaCungCapId = 0;
46 string _trangThaiNhapHang = "NhapHang";
47
48 int _pageSize = 30;
49 int _pageIndex = 1;
50 //int rowIndex = 0;
51 int _tongSoBanGhi = 0;
52 int _stt = 0;
53
54 int rowIndexClick = 0;
55
56 int n = 0;
57
58 //int loadPublic = 1;
59
60 private void uctQuanLyHoaDon_Load(object sender, EventArgs e)
61 {
62 //hiển thị cmb trạng thái đơn hàng
63 this.HienThiTrangThaiDonHang_ComboBox();
64 }
65
66
67 public void HienThiDsNhapH()
68 {
69 _pageSize = 30;
70 _pageIndex = 1;
71 _stt = 0;
72
73 _getSearchIdNhaCungCap = 0;
74 this.DanhSachDonHang_NhapHang("-1", "", "", _getSearchIdNhaCungCap);
75
76 }
77
78
79
80
81 //cmb trạng thái đơn hàng
82 private void HienThiTrangThaiDonHang_ComboBox()
83 {
84 Dictionary<string, string> comboSource = new Dictionary<string, string>();
85 comboSource.Add("-1", "-- Tất cả đơn hàng --");
86 //comboSource.Add("DonHangNoNCC", "Đơn hàng nợ NCC");
87 //comboSource.Add("DaThanhToan", "Đơn hàng đã thanh toán");
88 //comboSource.Add("NhapHangMoi", "Đơn hàng nhập mới");
89 comboSource.Add("HuyDonHang", "Hủy đơn hàng");
90 comboSource.Add("TamDung", "Tạm dừng");
91 comboSource.Add("NhapHang", "Nhập hàng");
92
93 cmbTrangThaiDonHang.DataSource = new BindingSource(comboSource, null);
94 cmbTrangThaiDonHang.DisplayMember = "Value";
95 cmbTrangThaiDonHang.ValueMember = "Key";
96 }
97
98 public void HienThiTheoNCC(int IdNcc)
99 {
100 _pageSize = 30;
101 _pageIndex = 1;
102 _stt = 0;
103
104 _getSearchIdNhaCungCap = IdNcc;
105 this.DanhSachDonHang_NhapHang("-1", "", "", _getSearchIdNhaCungCap);
106 }
107
108 private void DanhSachDonHang_NhapHang(string trangThaiDonHang, string tenDonHang, string maDonHang, int nhaCungCap)
109 {
110 dgvDanhSachDonHang_NhapHang.Rows.Clear();
111 //Ẩn cột đầu tiên
112 dgvDanhSachDonHang_NhapHang.RowHeadersVisible = false;
113 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
114 this.dgvDanhSachDonHang_NhapHang.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
115 this.dgvDanhSachDonHang_NhapHang.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
116 //this.dgvDanhSachDonHang_DaThanhToan.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
117
118 this.dgvDanhSachDonHang_NhapHang.Columns["MaDonHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
119 this.dgvDanhSachDonHang_NhapHang.Columns["MaDonHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
120
121 this.dgvDanhSachDonHang_NhapHang.Columns["TongMatHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
122 this.dgvDanhSachDonHang_NhapHang.Columns["TongMatHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
123
124 //this.dgvDanhSachDonHang_DaThanhToan.Columns["NCC_NoChuCuaHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
125 //this.dgvDanhSachDonHang_DaThanhToan.Columns["NCC_NoChuCuaHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
126
127 this.dgvDanhSachDonHang_NhapHang.Columns["No_NCC"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
128 this.dgvDanhSachDonHang_NhapHang.Columns["No_NCC"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
129
130 this.dgvDanhSachDonHang_NhapHang.Columns["NgayTao"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
131 this.dgvDanhSachDonHang_NhapHang.Columns["NgayTao"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
132
133 this.dgvDanhSachDonHang_NhapHang.Columns["ChiPhiThem"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
134 this.dgvDanhSachDonHang_NhapHang.Columns["ChiPhiThem"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
135
136
137 this.dgvDanhSachDonHang_NhapHang.Columns["TongDonHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
138 this.dgvDanhSachDonHang_NhapHang.Columns["TongDonHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
139
140 this.dgvDanhSachDonHang_NhapHang.Columns["DaThanhToan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
141 this.dgvDanhSachDonHang_NhapHang.Columns["DaThanhToan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
142
143
144 this.dgvDanhSachDonHang_NhapHang.Columns["TrangThai"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
145 this.dgvDanhSachDonHang_NhapHang.Columns["TrangThai"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
146
147
148 DataTable dt = new DataTable();
149
150 //dt = Controllers.NhapHangCtrl.FillDataSet_NhapHang_SearchByTrangThai(_trangThaiDonHang, _pageSize, _pageIndex).Tables[0];
151 dt = Controllers.NhapHangCtrl.FillDataSet_NhapHang_SearchByTrangThai_Search(trangThaiDonHang, _pageSize, _pageIndex, maDonHang, tenDonHang, nhaCungCap).Tables[0];
152
153 if (dt.Rows.Count > 0)
154 {
155 _tongSoBanGhi = Int32.Parse(dt.Rows[0]["TongSoBanGhi"].ToString());
156
157 // double chiphithem = 0;
158 double tongdonhang = 0;
159 double noNhaCC = 0;
160 double tongTThanhT = 0;
161
162 foreach (DataRow item in dt.Rows)
163 {
164 _stt += 1;
165 n = dgvDanhSachDonHang_NhapHang.Rows.Add();
166
167 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["IdNhapHang"].Value = item["IdNhapHang"].ToString();
168
169 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["NhaCungCapId"].Value = item["NhaCungCapId"].ToString();
170
171 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["STT"].Value = _stt.ToString();
172
173 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["MaDonHang"].Value = CauHinhHeThong.TIEU_DE_NGU_HOA_DON_NHAP_HANG + item["IdNhapHang"].ToString();
174
175 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["TenDonHang"].Value = item["TenDonHang"].ToString();
176
177 //dgvDanhSachDonHang_NhapHang.Rows[n].Cells["ThongTinNCC"].Value = item["SoDienThoai"].ToString() + " " + item["HoVaTen"].ToString();
178 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["ThongTinNCC"].Value = item["HoVaTen"].ToString();
179
180 //dgvDanhSachDonHang_NhapHang.Rows[n].Cells["HoVaTen"].Value = item["HoVaTen"].ToString();
181 //dgvDanhSachDonHang_NhapHang.Rows[n].Cells["SoDienThoai"].Value = item["SoDienThoai"].ToString();
182
183 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["TongMatHang"].Value = item["TongMatHang"].ToString();
184 //Tiền đặt hàng
185 // dgvDanhSachDonHang_DaThanhToan.Rows[n].Cells["NCC_NoChuCuaHang"].Value = CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["NCC_NoChuCuaHang"].ToString(), true); //item["SoLuong"].ToString();// DoFormat(_SoLuong);
186
187
188 //chiphithem = CauHinhHeThong.Format_SoDeTinhToan(item["ChiPhiThem"].ToString(),false);
189
190 //dgvDanhSachDonHang_NhapHang.Rows[n].Cells["ChiPhiThem"].Value = CauHinhHeThong.Format_SoDeHienThi(chiphithem, true);
191
192 //ẩn trong dgv
193 //dgvDanhSachDonHang_NhapHang.Rows[n].Cells["MoTaChiPhiThem"].Value = item["MoTaChiPhiThem"].ToString();
194
195 tongdonhang = CauHinhHeThong.Format_SoDeTinhToan(item["TongDonHang"].ToString(), false);
196 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["TongDonHang"].Value = CauHinhHeThong.Format_SoDeHienThi(tongdonhang, true);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(, true);
197
198 tongTThanhT = CauHinhHeThong.Format_SoDeTinhToan(item["TienThanhToan"].ToString(), false);
199 noNhaCC = tongdonhang - tongTThanhT;
200
201 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["DaThanhToan"].Value = CauHinhHeThong.Format_SoDeHienThi(tongTThanhT, true);
202
203 //Tiền nợ ncc
204 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["No_NCC"].Value = CauHinhHeThong.Format_SoDeHienThi(noNhaCC, true);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["No_NCC"].ToString(), true);
205
206
207 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["TrangThai"].Value = CauHinhHeThong.TrangThai_NhapHang(item["TrangThai"].ToString());
208
209 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["NgayTao"].Value = CauHinhHeThong.Format_HienThiNgayThangNam(item["NgayTao"].ToString(), true);
210
211 dgvDanhSachDonHang_NhapHang.Rows[n].Cells["GhiChu"].Value = item["GhiChu"].ToString();
212
213 }
214
215 //lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
216
217 }
218
219 lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
220
221 }
222
223 private void dgvDanhSachDonHang_DaThanhToan_CellClick(object sender, DataGridViewCellEventArgs e)
224 {
225
226 //rowIndex = 0;
227 //-https://stackoverflow.com/questions/1132471/how-to-reference-column-name-instead-of-e-columnindex-in-winform-datagridview-ev
228 if (dgvDanhSachDonHang_NhapHang.Columns[e.ColumnIndex].Name == "TrangThai" && e.RowIndex != -1)
229 {
230 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
231 if (dgvDanhSachDonHang_NhapHang.CurrentCell != null && dgvDanhSachDonHang_NhapHang.CurrentCell.Value != null)
232 {
233 rowIndexClick = e.RowIndex;
234
235 //Hiển thị sang tabPage thêm mới
236 //tabControlNhapHang.SelectedTab = tabPageThemMoiSanPham;
237 _IdNhapHang = Int32.Parse(dgvDanhSachDonHang_NhapHang.Rows[e.RowIndex].Cells["IdNhapHang"].Value.ToString());
238 _getSearchIdNhaCungCap = Int32.Parse(dgvDanhSachDonHang_NhapHang.Rows[e.RowIndex].Cells["NhaCungCapId"].Value.ToString());
239 _trangThaiNhapHang = dgvDanhSachDonHang_NhapHang.Rows[e.RowIndex].Cells["TrangThai"].Value.ToString();
240 //Truyền dữ liệu sang uct NhapHang
241 if (this.Link_TrangThai_Get_NhapHang_ChiTiet != null)
242 {
243
244 this.Link_TrangThai_Get_NhapHang_ChiTiet(sender, e, _IdNhapHang, _getSearchIdNhaCungCap, _trangThaiNhapHang);
245 }
246
247 }
248 }
249
250 //hien thi form thanh toan
251 if (dgvDanhSachDonHang_NhapHang.Columns[e.ColumnIndex].Name == "No_NCC" && e.RowIndex != -1)
252 {
253 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
254 if (dgvDanhSachDonHang_NhapHang.CurrentCell != null && dgvDanhSachDonHang_NhapHang.CurrentCell.Value != null)
255 {
256 rowIndexClick = e.RowIndex;
257
258 _IdNhapHang = Int32.Parse(dgvDanhSachDonHang_NhapHang.Rows[e.RowIndex].Cells["IdNhapHang"].Value.ToString());
259
260 frmNhapHang_ThanhToan frmNH_TT = new frmNhapHang_ThanhToan(_IdNhapHang, "tbl_NhapHang");
261
262 frmNH_TT.ShowDialog();
263
264 _stt = ((_pageIndex - 1) * _pageSize);
265 //hien thi lai danh sac
266 //this.GoiLai_DsHienThi(_getSearchIdNhaCungCap);
267 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
268
269 //Background thay doi
270 DataGridViewCellStyle CellStyle = new DataGridViewCellStyle();
271 CellStyle.BackColor = Color.Blue;
272 dgvDanhSachDonHang_NhapHang.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = CellStyle;
273
274
275 }
276 }
277 }
278
279
280 private void cmbTrangThaiDonHang_SelectionChangeCommitted(object sender, EventArgs e)
281 {
282 _pageSize = 30;
283 _pageIndex = 1;
284 _stt = 0;
285 _getSearchIdNhaCungCap = 0;
286 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
287
288 }
289
290 private void btnXuatExcel_Click(object sender, EventArgs e)
291 {
292
293 }
294
295 private void reOject(object obj)
296 {
297 try
298 {
299 System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
300 obj = null;
301 }
302 catch
303 {
304 obj = null;
305 MessageBox.Show("Lỗi");
306 }
307 finally
308 {
309 GC.Collect();
310 }
311 }
312
313 private void btnSau_Click_1(object sender, EventArgs e)
314 {
315
316
317 if ((_pageSize * _pageIndex) > _pageSize)
318 {
319 _pageIndex = _pageIndex - 1;
320 _stt = _pageSize * _pageIndex - _pageSize;
321
322 //goi lai ds
323 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
324
325 }
326 else
327 {
328 _pageIndex = 1;
329 }
330 }
331
332 private void btnTiep_Click_1(object sender, EventArgs e)
333 {
334 if (_tongSoBanGhi > (_pageSize * _pageIndex))
335 {
336 _pageIndex = _pageIndex + 1;
337
338 //goi lai ds
339 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
340 }
341 else
342 {
343 return;
344 }
345 }
346
347 private void txtTenDonHang_TextChanged(object sender, EventArgs e)
348 {
349 _pageSize = 30;
350 _pageIndex = 1;
351 _stt = 0;
352
353 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
354 }
355
356 private void txtMaDonHang_TextChanged(object sender, EventArgs e)
357 {
358 _pageSize = 30;
359 _pageIndex = 1;
360 _stt = 0;
361
362 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
363 }
364
365 private void linkLabel_NhaCungCap_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
366 {
367 frmNhaCungCap frmNCC = new frmNhaCungCap();
368
369 //Hiển thị thông tin nhà cung cấp sau khi chọn trong dgv danh sách ncc
370 frmNCC.ChonNhaCungCap = new frmNhaCungCap.GetThongTinNCC(GetValue_ThongTinNCC);
371
372 frmNCC.ShowDialog();
373 }
374
375 private void GetValue_ThongTinNCC(int idNhaCungCap, string hoVaTen, string soDienThoai, string diaChi, bool btnTrangThai)
376 {
377 if (btnTrangThai == true)
378 {
379 _getSearchIdNhaCungCap = idNhaCungCap;
380
381 grbNCC.Visible = true;
382 txtHoTenNCC.Text = hoVaTen + " " + soDienThoai;
383
384 _pageSize = 30;
385 _pageIndex = 1;
386 _stt = 0;
387
388 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
389 }
390 }
391
392 private void linkLabel_TatCaNCC_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
393 {
394 //_pageSize = 30;
395 //_pageIndex = 1;
396 //_stt = 0;
397
398 grbNCC.Visible = false;
399 _getSearchIdNhaCungCap = 0;
400
401 _pageSize = 30;
402 _pageIndex = 1;
403 _stt = 0;
404
405 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
406 }
407
408 private void linkLabel_XuatExcel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
409 {
410 frmQuanLyDonHang_XuatExcel frmQlDH_XE = new frmQuanLyDonHang_XuatExcel(txtMaDonHang.Text.Trim(), txtTenDonHang.Text.Trim(), cmbTrangThaiDonHang.SelectedValue.ToString(), _getSearchIdNhaCungCap, _pageSize, _pageIndex, _stt, _tongSoBanGhi);
411
412 //Hiển thị thông tin từ ngày đến ngày
413 frmQlDH_XE.ChongNgay_TuNgay_DenNgay = new frmQuanLyDonHang_XuatExcel.GetThongTinTuNgay_DenNgay(GetValue_TuNgayDenNgay);
414
415 frmQlDH_XE.ShowDialog();
416 }
417
418
419 private void GetValue_TuNgayDenNgay(DateTime tuNgay, DateTime denNgay, bool trangThaiClick)
420 {
421 //lblTuNgayDenNgay.Text = "Ngày nhập " + CauHinhHeThong.Format_HienThiNgayThangNam(tuNgay.ToString()) + " - " + CauHinhHeThong.Format_HienThiNgayThangNam(denNgay.ToString());
422 //tuNgay.ToShortDateString();
423 }
424
425 private void linkLabel_ThemMoiDonHang_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
426 {
427 if (this.Link_ThemMoiDonHang != null)
428 {
429 this.Link_ThemMoiDonHang(sender, e);
430 }
431 }
432
433 private void linkLabel_QuanLyKho_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
434 {
435 if (this.Link_QuanLyKho != null)
436 {
437 this.Link_QuanLyKho(sender, e);
438 }
439 }
440
441 private void linkLabelThanhToan_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
442 {
443
444 if (_getSearchIdNhaCungCap == 0)
445 {
446 lblThongBao.Text = "Bạn chưa chọn nhà cung cấp!";
447 lblThongBao.Visible = true;
448
449 var t = new System.Windows.Forms.Timer();
450 t.Interval = 3000; // it will Tick in 3 seconds
451 t.Tick += (s, ex) =>
452 {
453 lblThongBao.Visible = false;
454 t.Stop();
455 };
456 t.Start();
457
458
459 }
460 else
461 {
462
463 frmThanhToanNhapHang_TheoNCC frmTtByNcc = new frmThanhToanNhapHang_TheoNCC("", _getSearchIdNhaCungCap, "");
464
465 frmTtByNcc.ShowDialog();
466
467 _pageSize = 30;
468 _pageIndex = 1;
469 _stt = 0;
470
471 this.DanhSachDonHang_NhapHang(cmbTrangThaiDonHang.SelectedValue.ToString(), txtTenDonHang.Text.Trim(), txtMaDonHang.Text.Trim(), _getSearchIdNhaCungCap);
472 }
473 }
474 }
475 }